As is known in the art, multicasting is a technique by which a sender can forward data to multiple members of the group using a single data transmission. Extensions to the Internet Protocol to support multicasting are described in IEEE RFC 1112, “Host Extensions for IP Multicasting”, by Deering, 1989, and RFC 2236 “Internet Group Management Protocol, Version 2”, 1997, by Fenner.
In general, Deering and Fenner describe that IP multicasting is the transmission of an IP datagram to a “host group”, a set of zero or more hosts identified by a single IP destination address. The membership of a host group is dynamic, and at any time it may include different host members. In addition, a host group may be permanent or transient. A permanent group has a well-known, administratively assigned IP address. Those IP multicast addresses that are not reserved for permanent groups are available for dynamic assignment to transient groups which exist only as long as they have members.
For purposes of clarity, a network will be described to include at least one host and at least one ‘multicast router.’ Each host and/or multicast router may also be an internet gateway capable of transmitting data from a local network to other coupled networks. In general, a host transmits an IP multicast datagram as a local network multicast which reaches all immediately-neighboring members of the destination host group. If a neighboring multicast router is not a member of the group, the multicast router forwards multicast messages to the other members of the multicast group. As mentioned above, the multicast router may be co-resident with, or separate from, the internet gateway. Thus, the forwarding of the packet to the other members of the group may include forwarding the packet out of the local network to a neighboring network via the internet gateway by either the host or the multicast router.
Hosts that seek to participate in multicasting implement Internet Group Management Protocols (IGMP). A host may be coupled to one or more networks via different network interfaces. For each group communication, a host specifies the network interface over which communications with the group will be forwarded. According to the IGMP protocol, a host joins a group by issuing a Report request, indicating the group address and the network interface of the host associated with communications for the group. A host leaves a group by issuing a Leave (or Release) request, using the group address and network interface associated with the group. The Leave request causes the host to give up its membership in the host group identified by the group address on the identified network interface.
Each host maintains a list of host group memberships associated with each network interface. An incoming datagram destined to one of those groups is processed the same way as datagrams destined directly for the host. Periodically, IP hosts report their host group memberships to neighboring devices. Multi-cast routers send Host Membership Query messages (or Queries) to discover which host groups have members on their attached local networks. Hosts respond to a Query by generating a Host Membership Report (hereinafter Report) reporting each host group to which they belong on the network interface from which the Query was received. The Report is sent periodically, as a multicast transmission to the host group address being reported, to enable all other members in the same group on the same network to hear the Report. In one currently implemented embodiment, Queries are issued every 60 seconds.
As mentioned above, multicast group members need not all reside in the same local area network. Thus, groups may span wide-area internets, with certain members of the group being communicated with via the internet gateway. An efficient method for routing multicast groups that span wide-area networks is referred to as Protocol Independent Multicasting (PIM).
In general, PIM seeks to reduce the number of multicast messages being forwarded through a network by identifying the best multicast paths for routing transmission to the destinations. In a PIM network, certain functionality is consolidated at defined devices. One defined device is a Rendez-Vous Point (RP). Each multicast group has a shared tree via which receivers hear of new sources and new receivers hear of all sources. The RP is the root of the per-group shared tree, called the RP tree, and in essence identifies the routing paths to each members of the group.
A Designated Router (DR) in a PIM network is router that sends multicast group membership commands (such as the PIM Join and PIM Prune commands) to the Rendez-vous Point (RP) on behalf of neighboring devices. The DR may be, for example, a router located at the internet gateway of a local network, which is used to forward multicast messages over the gateway.
Thus, IGMP provides a protocol that allows hosts to identify group membership to Querying routers through a combination of Reports and Leave commands. In addition, PIM provides a protocol by which group membership can be collected by a DR and forwarded to a Rendezvous Point using PIM Join and PIM prune commands. In typical IP environments, routers should include hardware to support both protocols. Different vendors use different mechanism to maintain consistency between the two protocols.
One mechanism that is often used will now be described with reference to the exemplary network 10 of FIG. 1. Network 10 is shown to include a multicast router, which is also a PIM Designated Router (DR) 12 coupled to an IGMP Host 14 and PIM router 16. The DR 12 periodically receives Report and Leave/Release commands from the IGMP Host 14, and Join and Prune commands from the PIM router 16.
Assume that PIM router 16 is a member of a group A that receives transmissions from Source 18 via an network interface. When the PIM router 16 wants to exit the group, it issues a PIM prune to the upstream neighbor. In a network with only PIM routers, the prune could be forwarded to the Rendez-vous point. However, because the DR is also coupled to the IGMP Host, the DR should wait until the next Report is forwarded from the IGMP Host. If the Report shows that the IGMP Host is a member of group A, the DR will suppress the Prune from being forwarded to the Rendez-vous point. Because the time period between reports is generally defined to be sixty seconds, in order to consistently support both the IGMP and PIM protocols, some DRs suppress prunes for a time period in excess of sixty seconds to ensure that an interface that is going to be needed to support the IGMP Host is not prematurely pruned. Such a delay is undesirable. It would be desirable to identify a mechanism that would permit IGMP and PIM to be jointly supported without the added delays of the prior art.